iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
0
Software Development

Azure Application Insights系列 第 20

Day - 20. 自訂事件和度量(Tips)

  • 分享至 

  • xImage
  •  
  1. flushing data 排清資料官方的翻譯這樣翻的...,說白點就是清除資料

這邊我們可以利用TelemetryClient.Flush();來達到

https://ithelp.ithome.com.tw/upload/images/20191005/20103426BNIH28YRqy.png

一般來說,SDK會以固定間隔(通常是30秒)或每次緩衝區已滿(通常是500 items)傳送資料

不過,也許我們會有需要排清緩衝區的需求

例如,如果我們在會被關閉的應用程式中使用SDK(通常也都是在這種情境下使用)

  1. Authenticated users 被驗證過的用戶

通常我們在Web Application裡面,預設都是使用Cookie來識別用戶

但...如果用戶他使用了不同的電腦、或是無痕瀏覽、也有可能刪除了Cookie

https://ithelp.ithome.com.tw/upload/images/20191005/20103426xe7jtNRVYm.png

那麼在這種情況...可能計量的準確度就會大幅下降!

但..別擔心!

我們可以從瀏覽器程式碼中設定經過驗證的使用者識別碼,來避免這問題

以下程式碼片段為JavaScript的操作方法:

// Called when my app has identified the user.
function Authenticated(signInId) {
    var validatedId = signInId.replace(/[,;=| ]+/g, "_");
    appInsights.setAuthenticatedUserContext(validatedId);
    ...
}

而Razor部分我們可以參考下列的程式碼片段:

@if (Request.IsAuthenticated)
{
    <script>
        appInsights.setAuthenticatedUserContext("@User.Identity.Name
            .Replace("\\", "\\\\")"
            .replace(/[,;=| ]+/g, "_"));
    </script>
}

其實在使用者計量的部分,我們並不需要用到使用的實際登入的名稱

All we need is 使用者的唯一識別碼(注意唷!其中不能包含空格或任何 ,;=| 字元)

  1. 停用Application Insights

這個很簡單...如果我們沒有使用SDK的狀況下...只需要單純在Azure操作即可

但....如果是有使用SDK呢?

a. 刪掉SDK是個方法...有點麻煩的

b. 貼上一行簡單的Code(簡潔有力)

所以我們只需要插入下列程式碼即可:

TelemetryConfiguration.Active.DisableTelemetry = true;

太好了,大家一起都努力混到20天了!

看來這幾天的招式也學得差不多了

接下來剩下的10天,最後的三分之一就看看能不能練到...從心所欲的境界吧!!


上一篇
Day - 19. 自訂事件和度量(TelemetryContext)
下一篇
Day - 21. 使用量分析(概觀)
系列文
Azure Application Insights30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言